package com.houger.ddd.seckill.infra.entity;

import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import java.time.LocalDateTime;

/**
 * 活动实例表
 *
 * @author huanghao
 * @version $$ Revision:1.0.0, $$ Date: 2022-03-10 10:22:51 $$
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@DynamicInsert
@DynamicUpdate
@Entity
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "activity_instance")
public class ActivityInstance extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 活动模板ID
     */
    private Long templateId;

    /**
     * 活动模板代码
     */
    private String templateCode;

    /**
     * 活动实例代码
     */
    private String instanceCode;

    /**
     * 实例状态 0-无 1-开启中 2-奖励发放中 3-执行完毕 4-关闭
     */
    private Integer instanceStatus;

    /**
     * 终端来源 0-未知 1-微信小程序 2-app 3-h5 4-抖音小程序
     */
    private Integer platform;

    /**
     * 实例发起人
     */
    private String initiatorId;

    /**
     * 实例发起人手机号
     */
    private String initiatorPhone;

    /**
     * 实例发起人头像
     */
    private String initiatorIcon;

    /**
     * 实例发起人昵称
     */
    private String initiatorNickname;

    /**
     * 发起人绑定奖励ID
     */
    private Long initiatorRewardItemId;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 完成时间
     */
    private LocalDateTime finishTime;

    /**
     * 最大受邀人数限制
     */
    private Integer playerMaxLimit;

    /**
     * 最大受邀获得奖励人数限制
     */
    private Integer playerRewardLimit;

    /**
     * 当前受邀人数
     */
    private Integer totalPlayerCount;

    /**
     * 当前受邀获得奖励的人数
     */
    private Integer totalRewardPlayerCount;

    /**
     * 扩展参数
     */
    private String extData;


}
